// src/pay/pay.module.ts（你的 PayModule 文件）
import { Module } from '@nestjs/common';
import { WechatService } from 'nest-wxpay'; // 你的 WechatService 路径
import { PayController } from './pay.controller'; // 你的 PayController（如果有）
import { ConfigService } from '@nestjs/config';
import { readFileSync } from 'fs';
import { join } from 'path';
import { OrderModule } from '../order/order.module';
import { InfoModule } from '../info/info.module'; // 用于读取环境变量（推荐）

@Module({
  imports: [OrderModule, InfoModule],
  controllers: [PayController], // 若有支付控制器，需注册
  providers: [
    WechatService, // 注册 WechatService
    // 关键：注册 WECHAT_OPTIONS 提供者
    {
      provide: 'WECHAT_OPTIONS', // 与 WechatService 构造器的 @Inject('WECHAT_OPTIONS') 完全匹配
      useFactory: (configService: ConfigService) => {
        // 读取 apiclient_key.pem 文件内容
        const privateKey = readFileSync(join(__dirname, 'apiclient_key.pem'), 'utf8');
        // 从环境变量/配置文件中读取微信支付配置（避免硬编码）
        return {
          appid: 'wx862971d956a0aeaf',
          mchid: '1725966842',
          privateKey, // 私钥字符串
          serial_no: '723BAB34E38E6EEB9420B6F5B3244320292837A6', // 证书序列号
          apiv3Key: 'TwthPf00kPtyMsOaep5vOVhNL6Eo5ZPc', // APIV3 密钥
        };
      },
      inject: [ConfigService], // 注入 ConfigService 读取环境变量（需确保项目已引入 @nestjs/config）
    },
  ],
})
export class PayModule {}
